package com.dys.testcollections05;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @className: com.dys.testcollections05.CollectionsTest
 * @description: com.dys.testcollections05
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/09 下午10:50
 */
public class CollectionsTest {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        new CollectionsTest().testCollections();
    }

    public void testCollections() {
        // Collections不支持创建对象，因为构造器私有化了
        /*Collections cols = new Collections();*/
        // 里面的属性和方法都是被static修饰，我们可以直接用类名.去调用即可：
        // 常用方法：
        List<String> list1 = new ArrayList<String>();
        list1.add("aa");
        list1.add("dd");
        list1.add("ee");
        list1.add("ff");
        list1.add("bb");
        list1.add("cc");
        Collections.addAll(list1, "gg", "hh", "ii", "jj");
        System.out.println(list1);
        // 添加一个数组
        System.out.println("==================");
        Collections.addAll(list1, new String[]{"hh", "kk"});
        System.out.println(list1);

        // binarySearch必须在有序的集合中查找：--》排序：提供的是升序排列
        Collections.sort(list1);
        System.out.println("=======排序===============");
        System.out.println(list1);
        System.out.println(Collections.binarySearch(list1, "bb"));

        // copy:替换方法
        List<String> list2 = new ArrayList<>();
        Collections.addAll(list2, "mm", "nn", "tt", "zz");
        System.out.println("===========copy===========");
        Collections.copy(list1, list2);// 将list2的内容替换在list1中去
        System.out.println(list1);
        System.out.println(list2);

        // fill 填充
        Collections.fill(list2, "AAA");
        System.out.println(list2);
    }
}
